Systems and methods for color and pattern analysis of images of wearable items

ABSTRACT

Disclosed are methods, systems, and non-transitory computer-readable medium for color and pattern analysis of images including wearable items. For example, a method may include receiving an image depicting a wearable item, identifying the wearable item within the image by identifying a face of an individual wearing the wearable item or segmenting a foreground silhouette of the wearable item from background image portions of the image, determining a portion of the wearable item identified within the image as being a patch portion representative of the wearable item depicted within the image, deriving one or more patterns of the wearable item based on image analysis of the determined patch portion of the image, deriving one or more colors of the wearable item based on image analysis of the determined patch portion of the image, and transmitting information regarding the derived one or more colors and information regarding the derived one or more patterns.

TECHNICAL FIELD

Various embodiments of the present disclosure generally relate to imageprocessing, and more particularly, to analyzing color and pattern of awearable item depicted in an image.

BACKGROUND

Conventional methods for image processing for object recognitiongenerally utilize “deep learning” neural network approaches. Neuralnetworks simulate real neural networks, such as the human brain, throughsimple simulated neurons (also referred to as nodes) connected through aseries of layers. Such neural networks “learn” through the feedback ofthe correct responses provided to the neural networks. This process isalso referred to as “training.” In the context of neural networks, theterm “deep” refers to the number of layers within a neural network wherea deep network has more layers than a shallow network.

A neural network specifically designed for image processing is referredto as a Convolutional Neural Network (CNN). The convolutional layers insuch neural networks filter part of the image looking for certain visualattributes. For example, one convolution might look for narrow verticalbars. CNNs have been utilized for visual object recognition. In someinstances, CNNs approximate and improve upon human object recognitionperformance.

With respect to wearable item image analysis, a number of neural networkapproaches have been proposed. As an example, one available neuralnetwork approach takes a user-submitted image, recognizes a wearableitem included in the image, and identifies the same or similar wearableitem in an inventory. That neural network approach applies to a broadrange of products in addition to wearable items. While the neuralnetwork approach described above may have some merits, there are tworecognized issues with the neural network approach: (1) the significantamount of resources and (2) lack of explainability.

With respect to the first issue, the neural network approach requires asignificant amount of data and computational resources to train a neuralnetwork model. As an example, a million images may be considered atypical number of images used for training a neural network model.Furthermore, such images must be pre-labeled with correct responses. Forexample, images of wearable items used for training must also includethe correct style characteristics. For specialized uses, such aswearable item style analysis, data sets with correct stylecharacteristics are difficult to find and/or are expensive. Moreover,the hardware (e.g., graphics processing units “GPUs” or tensorprocessing units “TPUs”) used to train neural network models at anylevel of efficiency is specifically designed for neural networkmodeling, and is expensive to buy or rent. For example, typical thirdparty cloud services rent GPUs for 1 to 24 dollars per hour, and atypical training run may last several days.

With respect to the second issue, while the results provided by theneural network approach may be accurate, it is difficult to explain howthe neural network models reached such results. Most of the processingfor neural network models is conducted in “hidden” layers between aninput (e.g., an image) and an output (e.g., results). This lack oftransparency makes it difficult to explain how the results wereachieved, therefore making it difficult to perform an act at afunctional level (e.g., providing recommendations to merchandising)based on the results provided by the neural network model.

The background description provided herein is for the purpose ofgenerally presenting the context of the disclosure. Unless otherwiseindicated herein, the materials described in this section are not priorart to the claims in this application and are not admitted to be priorart, or suggestions of the prior art, by inclusion in this section.

SUMMARY OF THE DISCLOSURE

According to certain aspects of the disclosure, systems and methods aredisclosed for color and pattern analysis of wearable items depicted inimages to overcome the problems with conventional methods noted above.Advantages provided by the embodiments disclosed herein include avoidingtraining of a neural network, thus avoiding excessive costs andcomputational resources associated with the neural network approach.Further, the embodiments disclosed herein provide transparent andexplainable results.

In one embodiment, a computer-implemented method comprises: receiving,by one or more processors, an image depicting a wearable item;identifying, by the one or more processors, the wearable item within theimage by identifying a face of an individual wearing the wearable itemor segmenting a foreground silhouette of the wearable item frombackground image portions of the image; determining, by the one or moreprocessors, a portion of the wearable item identified within the imageas being a patch portion representative of the wearable item depictedwithin the image; deriving, by the one or more processors, one or morepatterns of the wearable item based on image analysis of the determinedpatch portion of the image; deriving, by the one or more processors, oneor more colors of the wearable item based on image analysis of thedetermined patch portion of the image; and transmitting, by the one ormore processors, information regarding the derived one or more colorsand information regarding the derived one or more patterns.

In accordance with another embodiment, a computer system comprises: amemory having processor-readable instructions stored therein; and atleast one processor configured to access the memory and execute theprocessor-readable instructions, which when executed by the at least oneprocessor configures the at least one processor to perform a pluralityof functions, including functions for: receiving an image depicting awearable item; identifying the wearable item within the image byidentifying a face of an individual wearing the wearable item orsegmenting a foreground silhouette of the wearable item from backgroundimage portions of the image; determining a portion of the wearable itemidentified within the image as being a patch portion representative ofthe wearable item depicted within the image; deriving one or morepatterns of the wearable item based on image analysis of the determinedpatch portion of the image; deriving one or more colors of the wearableitem based on image analysis of the determined patch portion of theimage; and transmitting information regarding the derived one or morecolors and information regarding the derived one or more patterns.

In accordance with another embodiment, a non-transitorycomputer-readable medium contains instructions for: receiving an imagedepicting a wearable item; identifying the wearable item within theimage by identifying a face of an individual wearing the wearable itemor segmenting a foreground silhouette of the wearable item frombackground image portions of the image; determining a portion of thewearable item identified within the image as being a patch portionrepresentative of the wearable item depicted within the image; derivingone or more patterns of the wearable item based on image analysis of thedetermined patch portion of the image; deriving one or more colors ofthe wearable item based on image analysis of the determined patchportion of the image; and transmitting information regarding the derivedone or more colors and information regarding the derived one or morepatterns.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate various exemplary embodiments andtogether with the description, serve to explain the principles of thedisclosed embodiments.

FIG. 1 depicts an example environment in which methods, systems, andother aspects of the present disclosure may be implemented.

FIG. 2 depicts a process for analyzing a wearable item depicted in animage, according to some embodiments.

FIGS. 3A-3B depict a method of locating a patch portion representativeof a wearable item depicted within an image, according to oneembodiment.

FIGS. 4A-4B depict a method of locating a patch portion representativeof a wearable item depicted within an image, according to oneembodiment.

FIGS. 5A-5C depict converted patches representative of a wearable itemdepicted within an image, according to some embodiments.

FIGS. 6A-6C depict a method of analyzing patterns of wearable itemsdepicted within images, according to some embodiments.

FIG. 7A-7D depict power spectra according to some embodiments.

FIGS. 8A-8B depict a method of analyzing patterns according to someembodiments.

FIG. 9 depicts an exemplary method for analyzing a wearable itemdepicted in an image according to some embodiments.

FIG. 10 depicts an exemplary computer device or system, in whichembodiments of the present disclosure, or portions thereof, may beimplemented.

DETAILED DESCRIPTION OF EMBODIMENTS

As described above, conventional methods of wearable item image analysistypically employ neural network approaches (i.e., “deep learning”). Asnoted above, conventional methods for image processing using “deeplearning” neural network approaches are suboptimal, especially incertain garment e-commerce, and other wearable item use cases. Forexample, such conventional methods are costly in terms of obtaining andutilizing input data and computational resources to train the algorithmsfor neural networks. Additionally, the neural network approach providesresults in which the method and/or reasoning for the results are nottransparent. The following embodiments describe systems and methods foranalyzing images including a wearable item.

While the exemplary system architecture as described in the presentdisclosure relates to electronic transaction platform for subscribingto, purchasing, or renting wearable items (e.g., clothing-as-a-service(CaaS) or Try-Then-Buy (TTB) service), implementations disclosed hereinmay effectively serve various other online transaction platforms in thecontext of any other subscription, purchase, rental, or retail serviceswithout departing from the scope of the disclosure. In addition, whilesome descriptions and examples disclosed in the present disclosure referto certain exemplary transaction platforms or inventories astransactions or inventories pertaining to “apparel,” “garments,” or“CaaS” (i.e., clothing-as-a-service), all of those transactions and/orinventories may effectively serve any wearable item (e.g., an article ofclothing, apparel, jewelry, hat, accessories, or any other product whichmay be worn), or even hospitality linens, consumer goods, or any othertextile fabrics, without departing from the scope of the disclosure.

As used in the present disclosure, the term “CaaS” (i.e.,clothing-as-a-service) may collectively refer to computer-implementedservices and functions associated with subscription, purchase, and/orrental services for users (e.g., periodic subscription for receivingwearable items, apparel rental or purchase order, distribution, returnprocessing, TTB services, account management, marketing, customerservice, warehouse operations, etc.). As used in the present disclosure,the term “wearable item” may refer to any article of clothing, apparel,jewelry, hat, accessories, or other product which may be worn by aperson, an animal, or a thing, or be used as an ornament for a person,an animal, or a thing.

In accordance with the present disclosure, user interfaces, periodicallyexecuted computer-implemented services, ad hoc services, and automationsbeing integrated together in a connected platform may be achieved by auniquely configured system architecture, job execution clusterconfiguring one or more processors to perform both storefront and backoffice tasks, and various user interfaces providing specialized orcustomized access to users of different roles. The ordered combinationof various ad hoc and automated tasks in the presently disclosedplatform necessarily achieve technological improvements through thespecific processes described more in detail below. In addition, theunconventional and unique aspects of these specific automation processesrepresent a sharp contrast to merely providing a well-known or routineenvironment for performing a manual or mental task.

The subject matter of the present description will now be described morefully hereinafter with reference to the accompanying drawings, whichform a part thereof, and which show, by way of illustration, specificexemplary embodiments. An embodiment or implementation described hereinas “exemplary” is not to be construed as preferred or advantageous, forexample, over other embodiments or implementations; rather, it isintended to reflect or indicate that the embodiment(s) is/are “example”embodiment(s). Subject matter can be embodied in a variety of differentforms and, therefore, covered or claimed subject matter is intended tobe construed as not being limited to any exemplary embodiments set forthherein; exemplary embodiments are provided merely to be illustrative.Likewise, a reasonably broad scope for claimed or covered subject matteris intended. Among other things, for example, subject matter may beembodied as methods, devices, components, or systems. Accordingly,embodiments may, for example, take the form of hardware, software,firmware, or any combination thereof (other than software per se). Thefollowing detailed description is, therefore, not intended to be takenin a limiting sense.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaning.Likewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterinclude combinations of exemplary embodiments in whole or in part.

The terminology used below may be interpreted in its broadest reasonablemanner, even though it is being used in conjunction with a detaileddescription of certain specific examples of the present disclosure.Indeed, certain terms may even be emphasized below; however, anyterminology intended to be interpreted in any restricted manner will beovertly and specifically defined as such in this Detailed Descriptionsection. Both the foregoing general description and the followingdetailed description are exemplary and explanatory only and are notrestrictive of the features, as claimed.

In this disclosure, the term “based on” means “based at least in parton.” The singular forms “a,” “an,” and “the” include plural referentsunless the context dictates otherwise. The term “exemplary” is used inthe sense of “example” rather than “ideal.” The term “or” is meant to beinclusive and means either, any, several, or all of the listed items.The terms “comprises,” “comprising,” “includes,” “including,” or othervariations thereof, are intended to cover a non-exclusive inclusion suchthat a process, method, or product that comprises a list of elementsdoes not necessarily include only those elements, but may include otherelements not expressly listed or inherent to such a process, method,article, or apparatus. Relative terms, such as, “substantially” and“generally,” are used to indicate a possible variation of ±10% of astated or understood value.

Referring now to the appended drawings, FIG. 1 shows an exampleenvironment 100, according to one or more embodiments of the presentdisclosure. As shown, the example environment 100 may include one ormore networks 101 that interconnect a server system 102, user devices112, employee devices 116, tenant devices 120, and external systems 122.The one or more networks 101 may be, for example, one or more of acellular network, a public land mobile network, a local area network, awide area network, a metropolitan area network, a telephone network, aprivate network, an ad hoc network, an intranet, the Internet, a fiberoptic based network, a cloud computing network, etc. User devices 112may be accessed by users 108, employee devices 116 may be accessed byauthorized employees 114, and tenant devices 120 may be accessed byemployees of tenant entities 118. In some implementations, employeedevices 116 may be used to perform the functions of the tenant devices120 and/or the user devices 112. Server system 102 may comprise one ormore servers 104 and one or more databases 106, which may be configuredto store and/or process a plurality of data, microservices, and servicecomponents, and/or associated functions thereof.

Users 108 may access the server system 102 through the one or morenetworks 101 using user devices 112. Each device among the user devices112 may be any type of computing device (e.g., personal computingdevice, mobile computing devices, etc.) which allows users 108 todisplay a web browser or a web-based application for accessing theserver system 102 through the network 101. The user devices 112 may, forexample, be configured to display a web browser, a web-basedapplication, or any other user interface (e.g., one or more mobileapplications) for allowing users 108 to exchange information with otherdevice(s) or system(s) in the environment 100 over the one or morenetworks 101. For example, a device among the user devices 110 may loadan application with a graphical user interface (GUI), and theapplication may display on the GUI one or more apparel recommendationsfor closeting by the user. Users 108 accessing user devices 112 may be,for example, users and/or potential users of apparel made available forsubscription-based distribution via electronic transactions and physicalshipment. Additionally, or alternatively, users 108 may access userdevices 112 to, for example, manage one or more user accounts, viewcatalogs, configure one or more user profiles, engage in customerservice communications, make purchase orders, track shipments, generateshipments, monitor order fulfillment processes, initiate or processreturns, order apparel for purchase, provide feedback, refer otherusers, navigate through various features such as size advisor, performpersonalized discovery, and/or make recommendations.

Employee devices 116 may be configured to be accessed by one or moreemployees 114, including, for example, customer service employees,marketer employees, warehouse employees, analytics employees, or anyother employees who are authorized and/or authenticated to performtasks, operations, and/or transactions associated with the server system102, and/or the external systems 122. In one embodiment, employeedevices 116 are owned and operated by the same entity or at least anaffiliate of the entity operating the e-commerce (e.g., CaaS) businesshosted on server systems 102. Each device among the employee devices 116may be any type of computing device (e.g., personal computing device,mobile computing devices, etc.). The employee devices 116 may allowemployees 114 to display a web browser or an application for accessingthe server system 102 and/or the external systems 122, through the oneor more networks 101. For example, a device among the one or more of theemployee devices 116 may load an application with graphical userinterface (GUI), and the application may display on the GUI one or morewarehouse operations associated with providing CaaS to users 108. Insome implementations, the employee devices 116 may communicate directlywith the server system 102 via communications link 117 bypassing publicnetworks 101. Additionally, or alternatively, the employee devices 116may communicate with the server system 102 via network 101 (e.g., accessby web browsers or web-based applications).

Tenant devices 120 may be configured to be accessed by one or moretenants 118. Each device among the tenant devices 120 may be any type ofcomputing device (e.g., personal computing device, mobile computingdevices, etc.). As used herein, each tenant, among one or more tenants118, may refer to an entity that allocates and/or supplies one or morespecific collections of apparel for the CaaS inventory. For example,each of the one or more tenants 118 may be a retailer, a designer, amanufacturer, a merchandizer, or a brand owner entity that supplies oneor more collections of wearable items to the CaaS inventory managedand/or accessed by the server system 102. Tenants 118 may use one ormore electronic tenant interfaces (e.g., a catalog content managementsystem associated with each tenant) to provide the server system 102with wearable item data that describe apparel or wearable items madeavailable for electronic transactions on server system 102. For example,one or more catalogs for each of the one or more tenants 118 may begenerated and/or updated at the server system 102 dynamically and/orperiodically. Tenant devices 120 may serve as access terminals for thetenants 118, for communicating with the electronic tenant interfacesand/or other subsystems hosted at the server system 102. The tenantdevices 120 may, for example, be configured to display a web browser, anapplication, or any other user interface for allowing tenants 118 toload the electronic tenant interfaces and/or exchange data with otherdevice(s) or system(s) in the environment 100 over the one or morenetworks 101.

External systems 122 may be, for example, one or more third party and/orauxiliary systems that integrate and/or communicate with the serversystem 102 in performing various CaaS tasks. External systems 122 may bein communication with other device(s) or system(s) in the environment100 over the one or more networks 101. For example, external systems 122may communicate with the server system 102 via API (applicationprogramming interface) access over the one or more networks 101, andalso communicate with the employee devices 116 via web browser accessover the one or more networks 101.

As indicated above, FIG. 1 is provided merely as an example. Otherexamples that differ from the example environment 100 of FIG. 1 arecontemplated within the scope of the present embodiments. In addition,the number and arrangement of devices and networks shown in environment100 are provided as an example. In practice, there may be additionaldevices, fewer devices and/or networks, different devices and/ornetworks, or differently arranged devices and/or networks than thoseshown in environment 100. Furthermore, two or more devices shown in FIG.1 may be implemented within a single device, or a single device shown inFIG. 1 may be implemented as multiple, distributed devices.Additionally, or alternatively, one or more devices may perform one ormore functions of other devices in the example environment 100. Forexample, employee devices 116 may be configured to perform one or morefunctions of tenant devices 120, in addition to their own functions.

The embodiments disclosed in further detail below may be used withrespect to generating recommendations for customers. For example,customized recommendations for wearable items may be provided to acustomer as the customer searches for a wearable item through theembodiments disclosed herein. The recommendations may be based on asimilarity of the customer's preference to other customers' preferencesor based on the wearable items the customer had previously showed aninterest in and/or purchased. The analysis of colors and patterns of awearable item depicted in an image as disclosed herein may provideattributes in order to find similar wearable items to recommend to thecustomer. In some embodiments, the image for analysis may be provided bya tenant and/or a customer.

Additionally, the embodiments disclosed in further detail below may beused with respect to forecasting style trends. For example, theinformation obtained using the color and pattern analysis as describedherein may be utilized to provide predictions for further customerrenting and buying trends. Such predictions may inform tenants regardingthe purchase and/or availability of new inventory for rent and salepurposes.

FIG. 2 depicts a diagram showing an exemplary process 200 for analyzingan image including a wearable item according to some embodiments. Insome embodiments, the server system 102 may be configured to receive andperform an analysis of an image including a wearable item as shown inFIG. 2. In some embodiments, the server system 102 may perform theanalysis based on a computer-implemented algorithm. As shown in step 202of FIG. 2, the server system 102 may receive an image 204 including awearable item 206. In some embodiments, the server system 102 receives adescription of the wearable item, e.g., a type of the wearable item,with the image 204. In some embodiments, the image 204 may be receivedvia one or more user devices 112, one or more employee devices 116, oneor more tenant devices 120, and/or external system 122. Alternatively oradditionally, one or more images 204 may be stored in databases 106and/or received from any other third party in the clothing-as-a-servicecomputing environment.

In step 208, the server system 102 may analyze the received image 204 ofthe wearable item 206 and determines aspects of one or more patterns andcolors included in the wearable item 206. In some embodiments, aspectsof the patterns include the widths and the orientations of each of thepatterns of the wearable item 206. In some embodiments, aspects of thecolors include the number of colors and the type of colors of thewearable item 206. For example, the type of colors may include anycombination of hue, lightness, and saturation. Some examples of hueinclude 12 colors from a color wheel (e.g., yellow, yellow-green, green,blue-green, blue, blue-violet, violet, red-violet, red, red-orange,orange, and yellow-orange), as well as 3 achromatic colors (e.g., white,gray, and black). Some examples of saturation include achromatic,semi-saturated, and saturated. Some examples of lightness include dark,medium, and bright. In step 210, the server system 102 transmitsinformation associated with the wearable item 206 (hereinafter referredto as wearable item information 210) based on the analysis performed instep 208. In some embodiments, the wearable item information comprisesan analysis of one or more patterns of the wearable item 206. Forexample, the analysis of one or more patterns of the wearable item 206may explain whether the wearable item 206 includes a pattern that ismore solid or more patterned. As another example, the pattern analysismay include an orientation of one or more patterns of the wearable item206. In some embodiments, the information 210 comprises an analysis ofone or more colors of the wearable item 206. For example, the analysisof the one or more colors may include a number of colors and proportionof the colors of the wearable item 206. As another example, the analysisof the one or more colors may include color names and types, e.g.,semi-saturated vs. saturated and bright vs. dark. In some embodiments,the information 210 comprises a description and/or classification of thewearable item 206.

In some embodiments, the image analysis step 208, as shown in anddescribed with reference to FIG. 2, comprises three processes: (1)locating a patch portion representative of the wearable item 206; (2)analyzing one or more patterns of the wearable item 206; and (3)analyzing one or more colors of the wearable item 206. The threeprocesses will be explained in further detail below.

FIGS. 3A-3B and 4A-4B depict processes for locating a patch portionrepresentative of the wearable item 206 depicted within the image 204according to some embodiments. In some embodiments, the image 204includes a person wearing the wearable item 206 with the person facingforward and the entire wearable item 206 in view. The received image 204including the wearable item 206 may be a high resolution garmentproduction image. In some embodiments, the server system 102 may beconfigured to locate the patch portion representative of the wearableitem 206 depicted within the image 204.

FIGS. 3A-3B depict a method of locating a patch 302 representative ofthe wearable item 206 depicted within the image 204 according to anembodiment. As shown in FIG. 3A, the server system 102 receives an image204 depicting a model wearing a wearable item 206. The server system 102then estimates the position and the width of a face (hereinafterreferred to as the face portion 304) of the model within the receivedimage. In some embodiments, a face finding algorithm is used to estimatethe face portion 304 as shown in FIG. 3A. For example, the automatedHaar Cascade face finding algorithm may be used to locate the face ofthe model. The patch 302 representative of the wearable item 206 may bedetermined by locating a portion within the image at a position relativeto the position of the estimated face portion 304 as shown in FIG. 3B.

In some embodiments, the relative position of the patch 302 may bedifferent based on the type of wearable item 206. For example, therelative position of the patch 302 for a pair of pants may be differentfrom the relative position of the patch 302 for a skirt. In someembodiments, a rectangular filter is used to determine the face portion304 and the patch 302. In some embodiments, a rectangular unit(hereinafter referred to as a face unit) based on the width and heightof the face may be used to determine the relative position of the patch302. For example, the patch 302 for a pair of pants may be located bymoving four face units down from the bottom of the face portion 304 anda half face unit to the right of the center of the face portion 304 inorder to avoid the zipper. In some embodiments, the width of the patch302 may be determined based on a width of the face unit. For example,the width of the patch 302 may be configured as a half of a face unit.

FIGS. 4A-4B depict a method of locating a patch 302 representative ofthe wearable item 206 depicted within the image 204 according to anembodiment. As shown in FIG. 4A, the server system 102 receives an image204 depicting a model wearing a wearable item 206. A silhouette 404 ofthe model wearing the wearable item 206 may be segmented and labelled asforeground relative to everything else in the image 204, which may belabelled as background, as shown in FIG. 4B. In some embodiments, acomputerized algorithm, such as the Grabcut algorithm, may be utilizedto segment, label, and use the silhouette 404. A center of thesilhouette 404 may be located and the patch 302 may be determined basedon a relative position to the center of the silhouette 404. For example,the patch 302 may be identified as a portion of the image 204 located ahalf face unit down and to the right of the center of the silhouette404. In some embodiments, the face unit for this method of locating thepatch 302 may be determined based on an average face width from previousimage analyses.

In some embodiments, a face unit is determined based on the face portion304 in the received image 204 as described above with reference to FIGS.3A-3B. In other embodiments, the face unit is determined based on anaverage face width from previous image analyses as described above withreference to FIGS. 4A-4B. In some embodiments, a combination ofdifferent methods of face unit determination may be used. For example,the face unit may be determined based on the average face width fromprevious image analyses if the face finding algorithm fails to locate aface in an image and determine a face unit directly from the image. Thewidth of the determined face unit is used as a unit distance for thewidth of the patch 302, and as a unit distance for the pattern analysisas described in further detail below.

FIGS. 5A-5C, 6A-6B, and 7A-7C depict processes for analyzing one or morepatterns of the wearable item 206 according to some embodiments. In someembodiments, the server system 102 may be configured to perform ananalysis of one or more patterns of the wearable item 206.

In some embodiments, the server system 102 obtains the image 204 and thecoordinates of the patch 302 representative of the wearable item 206depicted in the image 204 and performs a Fast Fourier Transform (FFT) ofthe patch 302. The FFT converts the patch 302 into components of sinewaves of different widths, orientations, and phases. FIG. 5A showsvarious converted patches 505 a-d including components of sine waves invarying widths according to some embodiments. As shown in FIG. 5A,converted patch 505 a does not have any sine wave components whileconverted patch 505 b has one sine wave component. Converted patch 505 chas two sine wave components and converted patch 505 d has four sinewave components. The different widths of the sine wave componentsindicate different frequencies and such widths are described as cyclesper unit length. For example, converted patch 505 a has zero cycles,converted patch 505 b has one cycle, converted patch 505 c has twocycles, and converted patch 505 d has four cycles. In some embodiments,a face unit is used as the unit. Accordingly, the different frequenciesincluded in the converted patch 505 a-d may be indicated as cycles perface (cpf). In the context of image processing, frequencies indicatespatial frequencies. Referring back to FIG. 5A, converted patch 505 acan be explained as having zero cpf, which indicates that the patch isof a solid color. Similarly, converted patch 505 b has one cpf, whichindicates a low spatial frequency and converted patch 505 d has fourcpf, which indicates a relatively higher spatial frequency. In someembodiments, zero to ten cpf may indicate a low spatial frequency, i.e.,a relatively wide pattern, and ten to twenty cpf may indicate a highspatial frequency, i.e., a relatively narrow pattern.

FIG. 5B shows various converted patches 510 a-d in varying orientationsaccording to some embodiments. The various orientations of the convertedpatches 510 a-d indicate a direction of the pattern. FIG. 5C showsconverted patches 515 a-b with varying phases according to someembodiments. A cycle for converted patch 515 a may start with arelatively bright portion of the cycle as shown on the left side of theconverted patch 515 a. A cycle for converted patch 515 b may start witha relatively dark portion of the cycle as shown on the left side of theconverted patch 515 b. As shown in FIG. 5C, the relatively brightportion of the cycle in converted patch 515 b may have shifted by abouta fourth of the cycle to the right from the relatively bright portion ofthe cycle in converted patch 515 a. This shift may be referred to as aphase shift.

FIGS. 6A-6B show an example of a FFT of an image according to oneembodiment. As shown in FIG. 6A, the FFT of an image 602 provides a twodimensional polar plot of a magnitude spectrum plot 604 and a twodimensional polar plot of a phase spectrum 606. The phase spectrum 606may depict the horizontal shift (along an axis of orientation) ofsinusoidal components comprising the FFT of the image 602 according tosome embodiments. In some embodiments, the horizontal shift of thesinusoidal components may be used to determine positions of patterns inthe image 602. The magnitude spectrum plot 604 depicts the power forseparate components in terms of spatial frequency and orientation on atwo dimensional polar plot. As shown in FIG. 6B, a distance from thecenter of the magnitude spectrum plot 604 indicates the spatialfrequency. That is, the center of the magnitude spectrum plot 604indicates zero spatial frequency and an increasing radius 610 from thecenter indicates increasing spatial frequency. For example, the furtheraway from the center of the magnitude spectrum plot 604, the higher thespatial frequency. Accordingly, the center of the magnitude spectrumplot 604 may be indicated as 0 cpf. Additionally, each angle with anendpoint at the center of the magnitude spectrum plot 604 indicates anorientation. Such angles with endpoints may also be referred to as“orientation bands,” which cover various orientation ranges, e.g., the 0degree orientation band 608 a with a 30 degree width ranging from −15 to15 degrees and the 30 degree orientation band 608 b with a 30 degreewidth ranging from 15 to 45 degrees.

In some embodiments, the magnitude spectrum plot of a patch portionrepresentative of a wearable item depicted in an image may be used toderive a power spectrum. In some embodiments, there are two types ofpower spectrum: (1) a spatial frequency power spectrum, and (2) anorientation power spectrum.

For the spatial frequency power spectrum, the power within a range ofspatial frequencies, e.g., a ‘medium’ ring 612 covering a range ofdistances from the center of the magnitude spectrum plot 604, is summedto derive the power spectrum. For example, the magnitudes within theentire area of the medium ring 612 is first squared to find the powerand then summed, which provides the power for the medium spatialfrequency band. In some instances, the power across all spatialfrequencies is log normalized. More specifically, the logarithm of power(also referred to as the log power) for each spatial frequency band iscalculated. The log power is then normalized. That is, the log power isrescaled such that the maximum log power is equal to 1. FIG. 7A depictsan example of spatial frequency power spectra with spatial frequencybands of 2cpf according to some embodiments. The power spectra depictedin FIG. 7A represents the power spectra for 3,000 wearable items grouped(by merchandising labels) for pattern scale. The N/A shown in FIG. 7Amay indicate ‘not applicable,’ or a solid pattern. In some instances,the pattern scale, listed from largest to smallest, may be: N/A, large,medium, small, and tiny. As shown in FIG. 7A, the power spectra inaggregate are ordered according to each respective pattern scale label.As an example, for high spatial frequencies above 10 cpf, the ‘tiny’labels may have the greatest ‘amount’ (i.e., greater magnitudes) of highspatial frequencies. The greatest amount of high spatial frequenciesabove 10 cpf are listed in decending order as follows: small, medium,large, and N/A.

Referring now to the orientation power spectrum, the power within acertain orientation band, e.g., the 0 degree orientation band 608 a orthe 30 degree orientation band 608 b, may be summed to derive the powerspectrum. In some embodiments, there may be two types of orientationpower spectra: (1) a power spectrum for lower spatial frequencies 608c-d, and (2) a power spectrum for high spatial frequencies 608 e-f, asshown in FIG. 6C. As shown in FIG. 7B, the power spectrum for lowerspatial frequencies may cover a range of 0 to 10 cpf (wide patterns) forseveral orientation bands, e.g., −60 degree orientation band, −30orientation band, etc. As shown in FIG. 7C, the power spectrum forhigher spatial frequencies may cover a range of 10 to 20 cpf (narrowpatterns) for the several orientation bands. The 0 degree orientationband may indicate a horizontal orientation of a pattern and the 90degree orientation band may indicate a vertical orientation of apattern. FIGS. 7B-7C show the relative power of patterns at variousorientations according to some embodiments. As shown in FIGS. 7B-7C, thespectra for the polka dots pattern is depicted as relatively flat. Thisis because the circular patterns that dictate polka dot patterns do nothave a dominant orientation. Referring again to FIGS. 7B-7C, therelative amount for a plaid pattern tends to peak at the 0 degreeorientation band (the horizontal orientation) and the 90 degreeorientation band (the vertical orientation). This is because plaidpatterns generally have a strong pattern of horizontal and verticalstriping. In some embodiments, the spectra for striped pattern andnon-classifiable patterns may also be provided as shown in FIGS. 7B-7C.FIG. 7D shows another example of orientation power spectra for wearableitems of various garment types according to some embodiments. In someinstances, the various garment types may be referred to as “garmentpersonae.” Based on the orientation spectra shown in FIG. 7D, it may bedetermined that an Ariana garment personae, a specific garment type,includes wearable items of more oblique or circular patterns, a Carlygarment personae, another specific garment type, includes wearable itemswith horizontal and vertical stripes with relatively more horizontalstripes, a Megan EC garment personae, another specific garment type,includes wearable items with horizontal and vertical stripes withrelatively more vertical stripes, and a Megan WC garment personae, yetanother specific argment type, includes slightly more vertical patternsthan the Ariana garment personae.

In some embodiments, the analysis of one or more patterns of thewearable item may output spatial frequency power spectra as shown inFIG. 7A with 0 to 20 cpf. In some embodiments, the analysis of one ormore patterns of the wearable item may output orientation power spectraas shown in FIG. 7B from −60 degrees to 90 degrees in 30 degreeorientation bands covering a range of spatial frequencies from 0 to 10.In some embodiments, the analysis of one or more patterns of thewearable item may output orientation power spectra as shown in FIG. 7Cfrom −60 degrees to 90 degrees in 30 degree orientation bands covering arange of spatial frequencies from 10 to 20. As shown in FIGS. 7A-7D, allpower spectra are first log transformed, then normalized so that themaximum is 1.

FIGS. 8A and 8B depict color analyses of the wearable item 206 accordingto some embodiments. In some embodiments, the server system 102 may beconfigured to perform an analysis of one or more colors of the wearableitem 206. In one embodiment, the server system 102 obtains the image 204and the coordinates of the patch 302 representative of the wearable item206 depicted in the image 204. In the first step for the color analysis,the server system 102 may convert Red, Green, and Blue (RGB) values ofeach pixel within the patch 302 to Hue, Saturation, and Lightness (HSL)values.

In the second step for the color analysis, the server system 102 mayestimate the number of colors in the patch 302 based on the convertedHSL values. In some embodiments, a computer-implemented algorithm isused to search for clusters of HSL values to estimate the number ofcolors in the patch 302. In such embodiments, a k-means clustering maybe used to obtain a range of cluster numbers for the patch 302. Thegeneral hypothesis behind the k-means clustering is that a single colorwill be represented across a number of pixels by a cluster of nearby HSLvalues. In some embodiments, the spread of HSL values may be due tovariations caused by differences in illumination and orientation. Theserver system 102 then determines the number of clusters, i.e., thenumber of colors in the patch 302, based on two criteria: (1) thresholdcluster distance; and (2) threshold root mean square error (RMSE). Fordeterminations based on the threshold cluster distance, a cluster isrejected if a distance between a cluster center and a neighboringcluster center is below a predetermined threshold. The distance betweencluster centers is a Euclidean distance in HSL coordinates. Thethreshold cluster distance imposes a closeness constraint on the colorsin the patch 302. For determinations based on the threshold root meansquared error (RMSE), a cluster is rejected if the RMSE is larger than apredetermined RMSE threshold where the RMSE is measured for the entirepatch 302 as the mean Euclidean distance from each pixel's closestcluster center in HSL space. The threshold RMSE prevents a cluster fromhaving a spread too large. That is, the threshold RMSE prevents onecluster from representing more than one color. In some embodiments, amaximum number of clusters may be set for the k-means clustering. Eachcluster represents a certain HSL value.

In the third step for the color analysis, the server system 102categorizes each cluster based on the associated HSL value. Someexemplary categories for hue may include 12 colors from a color wheel(e.g., yellow, yellow-green, green, blue-green, blue, blue-violet,violet, red-violet, red, red-orange, orange, and yellow-orange), as wellas 3 achromatic colors (e.g., white, gray, and black). Some exemplarycategories for saturation may include achromatic, semi-saturated, andsaturated. Some exemplary categories for lightness may include dark,medium, and bright.

In a fourth step for the color analysis, the server system 102 combinesclusters that are categorized identically. For example, two clusterswith the same color name, saturation category, and lightness categoryare considered to be the same color. In such embodiments, the new HSLvalue for the combined color is the simple Euclidean mean of thecombined clusters.

In a fifth step for the color analysis, the server system 102 summarizesthe color information for the patch 302 based on the categorizedclusters in the previous steps, e.g., third and fourth steps. Thesummary may include the attributes: number of colors, proportion ofachromatic, semi-saturated, and saturated colors, proportion of light,medium, and dark colors, and a color contrast. In some embodiments, thecolor contrast is determined as the average HSL Euclidean distancebetween the colors in the patch. In some embodiments, the summary mayinclude the three dominant colors, i.e., the three most frequent colors,in the patch 302. In such embodiments, information regarding the threemost dominant colors may include the hue name, saturation category,lightness category, and the proportion of the dominant color in thepatch 302.

FIGS. 8A-8B show exemplary summaries for images as a result of a coloranalysis. FIGS. 8A-8B each shows an image 802, 808 including a wearableitem and a patch 804, 810 representative of the wearable item. The coloranalysis summary 806, 812 lists the dominant colors of the wearable itemin addition to the saturation, lightness, and proportion of each of thedominant colors. In some embodiments, the color analysis summary mayinclude one or more of: total number of colors in the patch, proportionof achromatic colors in the patch, proportion of semi-saturated colorsin the patch, proportion of saturated colors in the patch, proportion ofdark colors in the patch, proportion of medium colors in the patch,proportion of bright colors in the patch, average color contrast of thepatch measured in HSL Euclidean coordinates, hue name of the dominant(most frequent) color in the patch, saturation category of the dominant(most frequent) color in the patch, lightness category of the dominant(most frequent) color in the patch, proportion of the dominant (mostfrequent) color in the patch, hue name of the second (most frequent)color in the patch, saturation category of the second (most frequent)color in the patch, lightness category of the second (most frequent)color in the patch, proportion of the second (most frequent) color inthe patch, hue name of the third (most frequent) color in the patch,saturation category of the third (most frequent) color in the patch,lightness category of the third (most frequent) color in the patch, andproportion of the third (most frequent) color in the patch.

FIG. 9 depicts an exemplary method 900 for performing color and patternanalysis of images including wearable items. The method 900 includesstep 902, in which one or more processors (e.g., one or more processorsof the server system 102) may receive an image depicting a wearableitem. For example, as described above, server system 102 may receive oneor more images of wearable items from any other devices within aclothing-as-a-service environment, or otherwise over the Internet. Instep 904, the one or more processors may identify the wearable itemwithin the image by identifying a face of an individual wearing thewearable item or segmenting a foreground silhouette of the wearable itemfrom background image portions of the image. In step 906, the one ormore processors may determine a portion of the wearable item identifiedwithin the image as being a patch portion representative of the wearableitem depicted within the image. In step 908, the one or more processorsmay derive one or more patterns of the wearable item based on imageanalysis of the determined patch portion of the image. In step 910, theone or more processors may derive one or more colors of the wearableitem based on image analysis of the determined patch portion of theimage. In step 912, the one or more processors may transmit informationregarding the derived one or more colors and information regarding thederived one or more patterns.

In some embodiments, determining the portion of the wearable itemidentified within the image as being the patch portion representative ofthe wearable item depicted within the image comprises locating a portionwithin the image at a predetermined distance and direction from theidentified face of the individual wearing the wearable item; anddetermining the located portion within the image as the patch portionrepresentative of the wearable item depicted within the image.

In some embodiments, determining the portion of the wearable itemidentified within the image as being the patch portion representative ofthe wearable item depicted within the image comprises locating a centerportion of the segmented foreground silhouette of the wearable item; anddetermining the located center portion as the patch portionrepresentative of the wearable item depicted within the image.

In some embodiments, a size of the patch portion representative of thewearable item depicted within the image is based on a size of theidentified face of the individual wearing the wearable item.

In some embodiments, deriving the one or more patterns of the wearableitem based on image analysis of the determined patch portion of theimage performing a fast Fourier transform, FFT, of the determined patchportion of the image; and deriving at least one of an orientation and awidth for each of the one or more patterns based on the FFT of thepatch.

In some embodiments, deriving one or more colors of the wearable itembased on image analysis of the determined patch portion of the imagecomprises converting the determined patch portion of the image from aRed, Green, Blue (RGB) color model to a Hue, Saturation, Lightness (HSL)color model; and estimating a number of colors included in the convertedpatch portion of the image.

In some embodiments, estimating the number of colors included in theconverted patch portion of the image comprises determining one or moreclusters of pixels included in the converted patch portion of the image,wherein a first cluster and a second cluster are separated by apredetermined distance threshold, and wherein each of the first clusterand the second cluster comprises pixels with a root mean square error(RMSE) smaller than a predetermined RMSE threshold.

In some embodiments, estimating the number of colors included in theconverted patch portion of the image further comprises identifying acluster center for each of the determined one or more clusters ofpixels; classifying the identified cluster center for each of thedetermined one or more clusters of pixels into categorical values ofhue, saturation, and lightness; and estimating the number of colorsbased on the classified one or more cluster centers.

In some embodiments, receiving the image depicting the wearable itemcomprises receiving the image depicting the wearable item from one ormore of an electronic tenant interface and a user interface.

In some embodiments, the method 900 further includes the step ofclassifying the wearable item within the image based on one or more ofthe information regarding the derived one or more colors and theinformation regarding the derived one or more patterns.

As shown in FIG. 10, a device 1000 used for performing the variousembodiments of the present disclosure (e.g., the server system 102, theuser devices 112, the employee devices 116, the tenant devices 120,and/or any other computer system or user terminal for performing thevarious embodiments of the present disclosure) may include a centralprocessing unit (CPU) 1020. CPU 1020 may be any type of processor deviceincluding, for example, any type of special purpose or a general-purposemicroprocessor device. As will be appreciated by persons skilled in therelevant art, CPU 1020 also may be a single processor in amulti-core/multiprocessor system, such system operating alone, or in acluster of computing devices operating in a cluster or server farm. CPU1020 may be connected to a data communication infrastructure 1010, forexample, a bus, message queue, network, or multi-core message-passingscheme.

A device 1000 (e.g., the server system 102, the user devices 112, theemployee devices 116, the tenant devices 120, and/or any other computersystem or user terminal for performing the various embodiments of thepresent disclosure) may also include a main memory 1040, for example,random access memory (RAM), and may also include a secondary memory1030. Secondary memory, e.g., a read-only memory (ROM), may be, forexample, a hard disk drive or a removable storage drive. Such aremovable storage drive may comprise, for example, a floppy disk drive,a magnetic tape drive, an optical disk drive, a flash memory, or thelike. The removable storage drive in this example reads from and/orwrites to a removable storage unit in a well-known manner. The removablestorage unit may comprise a floppy disk, magnetic tape, optical disk,etc., which is read by and written to by the removable storage drive. Aswill be appreciated by persons skilled in the relevant art, such aremovable storage unit generally includes a computer usable storagemedium having stored therein computer software and/or data.

In alternative implementations, secondary memory 1030 may include othersimilar means for allowing computer programs or other instructions to beloaded into device 1000. Examples of such means may include a programcartridge and cartridge interface (such as that found in video gamedevices), a removable memory chip (such as an EPROM, or PROM) andassociated socket, and other removable storage units and interfaces,which allow software and data to be transferred from a removable storageunit to device 1000.

A device 1000 may also include a communications interface (“COM”) 1060.Communications interface 1060 allows software and data to be transferredbetween device 1000 and external devices. Communications interface 1060may include a modem, a network interface (such as an Ethernet card), acommunications port, a PCMCIA slot and card, or the like. Software anddata transferred via communications interface may be in the form ofsignals, which may be electronic, electromagnetic, optical, or othersignals capable of being received by communications interface 1060.These signals may be provided to communications interface 1060 via acommunications path of device 1000, which may be implemented using, forexample, wire or cable, fiber optics, a phone line, a cellular phonelink, an RF link or other communications channels.

The hardware elements, operating systems, and programming languages ofsuch equipment are conventional in nature, and it is presumed that thoseskilled in the art are adequately familiar therewith. A device 1000 alsomay include input and output ports 1050 to connect with input and outputdevices such as keyboards, mice, touchscreens, monitors, displays, etc.Of course, the various server functions may be implemented in adistributed fashion on a number of similar platforms, to distribute theprocessing load. Alternatively, the servers may be implemented byappropriate programming of one computer hardware platform.

The systems, apparatuses, devices, and methods disclosed herein aredescribed in detail by way of examples and with reference to thefigures. The examples discussed herein are examples only and areprovided to assist in the explanation of the apparatuses, devices,systems, and methods described herein. None of the features orcomponents shown in the drawings or discussed below should be taken asmandatory for any specific implementation of any of these theapparatuses, devices, systems, or methods unless specifically designatedas mandatory. For ease of reading and clarity, certain components,modules, or methods may be described solely in connection with aspecific figure. In this disclosure, any identification of specifictechniques, arrangements, etc. are either related to a specific examplepresented or are merely a general description of such a technique,arrangement, etc. Identifications of specific details or examples arenot intended to be, and should not be, construed as mandatory orlimiting unless specifically designated as such. Any failure tospecifically describe a combination or sub-combination of componentsshould not be understood as an indication that any combination orsub-combination is not possible. It will be appreciated thatmodifications to disclosed and described examples, arrangements,configurations, components, elements, apparatuses, devices, systems,methods, etc. can be made and may be desired for a specific application.Also, for any methods described, regardless of whether the method isdescribed in conjunction with a flow diagram, it should be understoodthat unless otherwise specified or required by context, any explicit orimplicit ordering of steps performed in the execution of a method doesnot imply that those steps must be performed in the order presented butinstead may be performed in a different order or in parallel.

Throughout this disclosure, references to components or modulesgenerally refer to items that logically can be grouped together toperform a function or group of related functions. Like referencenumerals are generally intended to refer to the same or similarcomponents. Components and modules can be implemented in software,hardware, or a combination of software and hardware. The term “software”is used expansively to include not only executable code, for examplemachine-executable or machine-interpretable instructions, but also datastructures, data stores and computing instructions stored in anysuitable electronic format, including firmware, and embedded software.The terms “information” and “data” are used expansively and includes awide variety of electronic information, including executable code;content such as text, video data, and audio data, among others; andvarious codes or flags. The terms “information,” “data,” and “content”are sometimes used interchangeably when permitted by context.

It is intended that the specification and examples be considered asexemplary only, with a true scope and spirit of the disclosure beingindicated by the following claims.

What is claimed is:
 1. A computer-implemented method comprising:receiving, by one or more processors, an image depicting a wearableitem; identifying, by the one or more processors, the wearable itemwithin the image by identifying a face of an individual wearing thewearable item or segmenting a foreground silhouette of the wearable itemfrom background image portions of the image; determining, by the one ormore processors, a portion of the wearable item identified within theimage as being a patch portion representative of the wearable itemdepicted within the image; deriving, by the one or more processors, oneor more patterns of the wearable item based on image analysis of thedetermined patch portion of the image; deriving, by the one or moreprocessors, one or more colors of the wearable item based on imageanalysis of the determined patch portion of the image; and transmitting,by the one or more processors, information regarding the derived one ormore colors and information regarding the derived one or more patterns.2. The computer-implemented method of claim 1, wherein determining theportion of the wearable item identified within the image as being thepatch portion representative of the wearable item depicted within theimage comprises: locating a portion within the image at a predetermineddistance and direction from the identified face of the individualwearing the wearable item; and determining the located portion withinthe image as the patch portion representative of the wearable itemdepicted within the image.
 3. The computer-implemented method of claim1, wherein determining the portion of the wearable item identifiedwithin the image as being the patch portion representative of thewearable item depicted within the image comprises: locating a centerportion of the segmented foreground silhouette of the wearable item; anddetermining the located center portion as the patch portionrepresentative of the wearable item depicted within the image.
 4. Thecomputer-implemented method of claim 1, wherein a size of the patchportion representative of the wearable item depicted within the image isbased on a size of the identified face of the individual wearing thewearable item.
 5. The computer-implemented method of claim 1, whereinderiving the one or more patterns of the wearable item based on imageanalysis of the determined patch portion of the image comprises:performing a fast fourier transform, FFT, of the determined patchportion of the image; and deriving at least one of an orientation and awidth for each of the one or more patterns based on the FFT of thepatch.
 6. The computer-implemented method of claim 1, wherein derivingone or more colors of the wearable item based on image analysis of thedetermined patch portion of the image comprises: converting thedetermined patch portion of the image from a Red, Green, Blue (RGB)color model to a Hue, Saturation, Lightness (HSL) color model; andestimating a number of colors included in the converted patch portion ofthe image.
 7. The computer-implemented method of claim 6, whereinestimating the number of colors included in the converted patch portionof the image comprises: determining one or more clusters of pixelsincluded in the converted patch portion of the image, wherein a firstcluster and a second cluster are separated by a predetermined distancethreshold, and wherein each of the first cluster and the second clustercomprises pixels with a root mean square error (RMSE) smaller than apredetermined RMSE threshold.
 8. The computer-implemented method ofclaim 7, wherein estimating the number of colors included in theconverted patch portion of the image further comprises: identifying acluster center for each of the determined one or more clusters ofpixels; classifying the identified cluster center for each of thedetermined one or more clusters of pixels into categorical values ofhue, saturation, and lightness; and estimating the number of colorsbased on the classified one or more cluster centers.
 9. Thecomputer-implemented method of claim 1, wherein receiving the imagedepicting the wearable item comprises: receiving the image depicting thewearable item from one or more of an electronic tenant interface and auser interface.
 10. The computer-implemented method of claim 1, furthercomprising: classifying the wearable item within the image based one ormore of the information regarding the derived one or more colors and theinformation regarding the derived one or more patterns.
 11. A computersystem comprising: a memory having processor-readable instructionsstored therein; and at least one processor configured to access thememory and execute the processor-readable instructions, which whenexecuted by the at least one processor configures the at least oneprocessor to perform a plurality of functions, including functions for:receiving an image depicting a wearable item; identifying the wearableitem within the image by identifying a face of an individual wearing thewearable item or segmenting a foreground silhouette of the wearable itemfrom background image portions of the image; determining a portion ofthe wearable item identified within the image as being a patch portionrepresentative of the wearable item depicted within the image; derivingone or more patterns of the wearable item based on image analysis of thedetermined patch portion of the image; deriving one or more colors ofthe wearable item based on image analysis of the determined patchportion of the image; and transmitting information regarding the derivedone or more colors and information regarding the derived one or morepatterns.
 12. The computer system of claim 11, wherein determining theportion of the wearable item identified within the image as being thepatch portion representative of the wearable item depicted within theimage comprises: locating a portion within the image at a predetermineddistance and direction from the identified face of the individualwearing the wearable item; and determining the located portion withinthe image as the patch portion representative of the wearable itemdepicted within the image.
 13. The computer system of claim 11, whereindetermining the portion of the wearable item identified within the imageas being the patch portion representative of the wearable item depictedwithin the image comprises: locating a center portion of the segmentedforeground silhouette of the wearable item; and determining the locatedcenter portion as the patch portion representative of the wearable itemdepicted within the image.
 14. The computer system of claim 11, whereina size of the patch portion representative of the wearable item depictedwithin the image is based on a size of the identified face of theindividual wearing the wearable item.
 15. The computer system of claim11, wherein deriving the one or more patterns of the wearable item basedon image analysis of the determined patch portion of the imagecomprises: performing a fast fourier transform, FFT, of the determinedpatch portion of the image; and deriving at least one of an orientationand a width for each of the one or more patterns based on the FFT of thepatch.
 16. The computer system of claim 11, wherein deriving one or morecolors of the wearable item based on image analysis of the determinedpatch portion of the image comprises: converting the determined patchportion of the image from a Red, Green, Blue (RGB) color model to a Hue,Saturation, Lightness (HSL) color model; and estimating a number ofcolors included in the converted patch portion of the image.
 17. Thecomputer system of claim 16, wherein estimating the number of colorsincluded in the converted patch portion of the image comprises:determining one or more clusters of pixels included in the convertedpatch portion of the image, wherein a first cluster and a second clusterare separated by a predetermined distance threshold, and wherein each ofthe first cluster and the second cluster comprises pixels with a rootmean square error (RMSE) smaller than a predetermined RMSE threshold.18. The computer system of claim 17, wherein estimating the number ofcolors included in the converted patch portion of the image furthercomprises: identifying a cluster center for each of the determined oneor more clusters of pixels; classifying the identified cluster centerfor each of the determined one or more clusters of pixels intocategorical values of hue, saturation, and lightness; and estimating thenumber of colors based on the classified one or more cluster centers.19. The computer system of claim 11, including further functions for:classifying the wearable item within the image based one or more of theinformation regarding the derived one or more colors and the informationregarding the derived one or more patterns.
 20. A non-transitorycomputer-readable medium containing instructions, comprising: receivingan image depicting a wearable item; identifying the wearable item withinthe image by identifying a face of an individual wearing the wearableitem or segmenting a foreground silhouette of the wearable item frombackground image portions of the image; determining a portion of thewearable item identified within the image as being a patch portionrepresentative of the wearable item depicted within the image; derivingone or more patterns of the wearable item based on image analysis of thedetermined patch portion of the image; deriving one or more colors ofthe wearable item based on image analysis of the determined patchportion of the image; and transmitting information regarding the derivedone or more colors and information regarding the derived one or morepatterns.